char *p=new char[10]; 和 char p[10]; 有啥区别

来源:百度知道 编辑:UC知道 时间:2024/05/26 20:17:52

char *p=new char[10]; 是动态申请的内存,在堆里面,需要用
delete [] p;进行手动释放;
char p[10];是在栈里的内存,编译器自行释放,不能用语句手动释放

前者是申请的堆里的内存, 要手动释放.
后者是应用程序自动释放空间的.
但是两个p在使用上是一样的, p都表示字符数组的第一个字符的地址.